import { FileListener } from './fileListener';

// 全局文件监听器实例
let fileListener: FileListener | null = null;

export function testFileListener(): void {
  console.log('🧪 开始文件监听器测试...');
  
  if (!window.electronAPI) {
    console.error('❌ electronAPI 不可用');
    return;
  }

  // 停止现有的监听器
  if (fileListener) {
    fileListener.stop();
    fileListener = null;
  }

  // 使用固定的测试目录
  const testDirectory = '/tmp';
  console.log(`📁 使用测试目录: ${testDirectory}`);
  console.log('💡 提示：你可以在该目录中创建文件来测试监听功能');

  // 创建文件监听器
  fileListener = new FileListener({
    directoryPath: testDirectory,
    interval: 1000, // 1秒间隔用于测试
    onNewFile: (file) => {
      console.log(`🎉 发现新文件！`);
      console.log(`  名称: ${file.name}`);
      console.log(`  路径: ${file.path}`);
      console.log(`  大小: ${file.size} 字节`);
      console.log(`  修改时间: ${new Date(file.mtime).toLocaleString()}`);
      console.log(`  已处理文件总数: ${fileListener?.getProcessedCount()}`);
    },
    onError: (error) => {
      console.error('❌ 文件监听器错误:', error);
    }
  });

  // 启动监听器
  fileListener.start().then(() => {
    console.log('✅ 文件监听器已启动');
    console.log('📝 现在可以在测试目录中创建文件来测试监听功能');
    console.log('💡 测试完成后，运行 stopFileListener() 停止监听器');
  }).catch((error) => {
    console.error('❌ 启动文件监听器失败:', error);
  });
}

export function stopFileListener(): void {
  if (fileListener) {
    fileListener.stop();
    fileListener = null;
    console.log('✅ 文件监听器已停止');
  } else {
    console.log('ℹ️ 没有正在运行的文件监听器');
  }
}

export function getFileListenerStatus(): void {
  if (fileListener) {
    console.log('📊 文件监听器状态:');
    console.log(`  状态: ${fileListener.isListenerRunning() ? '运行中' : '已停止'}`);
    console.log(`  监听目录: ${fileListener['directoryPath']}`);
    console.log(`  扫描间隔: ${fileListener['interval']}ms`);
    console.log(`  已处理文件数: ${fileListener.getProcessedCount()}`);
  } else {
    console.log('ℹ️ 没有活动的文件监听器');
  }
}

// 开发环境：自动注册全局函数
if (typeof window !== 'undefined' && process.env.NODE_ENV === 'development') {
  (window as any).testFileListener = testFileListener;
  (window as any).stopFileListener = stopFileListener;
  (window as any).getFileListenerStatus = getFileListenerStatus;
  
  console.log('💡 文件监听器测试工具已加载');
  console.log('可用函数:');
  console.log('  testFileListener() - 启动文件监听器测试');
  console.log('  stopFileListener() - 停止文件监听器');
  console.log('  getFileListenerStatus() - 查看监听器状态');
}